package com.bookstore.back.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bookstore.back.entity.BookReview;
import com.bookstore.back.vo.ReviewVO;

import java.util.List;
import java.util.Map;

/**
 * 图书评论服务接口
 * 
 * @author 程序猿_Ti
 * @since 2025-07-19
 */
public interface ReviewService extends IService<BookReview> {

    /**
     * 分页查询评论列表
     *
     * @param params 查询参数
     * @return 分页结果
     */
    IPage<ReviewVO> getReviewList(Map<String, Object> params);

    /**
     * 获取评论详情
     * 
     * @param reviewId 评论ID
     * @return 评论详情
     */
    Map<String, Object> getReviewDetail(Integer reviewId);

    /**
     * 删除评论
     * 
     * @param reviewId 评论ID
     * @return 是否成功
     */
    boolean deleteReview(Integer reviewId);

    /**
     * 切换评论状态
     * 
     * @param reviewId 评论ID
     * @param status 状态
     * @return 是否成功
     */
    boolean toggleReviewStatus(Integer reviewId, Integer status);

    /**
     * 更新评论
     *
     * @param reviewId 评论ID
     * @param reviewData 评论数据
     * @return 是否成功
     */
    boolean updateReview(Integer reviewId, Map<String, Object> reviewData);

    /**
     * 点赞/取消点赞评论
     *
     * @param reviewId 评论ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean toggleReviewLike(Integer reviewId, Integer userId);

    /**
     * 批量删除评论
     *
     * @param reviewIds 评论ID列表
     * @return 是否成功
     */
    boolean batchDeleteReviews(List<Integer> reviewIds);

}
